package cn.besbing.model.entities.primary;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ReportDownloadInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ReportDownloadInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPkDownloadInfoIsNull() {
            addCriterion("PK_DOWNLOAD_INFO is null");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoIsNotNull() {
            addCriterion("PK_DOWNLOAD_INFO is not null");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoEqualTo(String value) {
            addCriterion("PK_DOWNLOAD_INFO =", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoNotEqualTo(String value) {
            addCriterion("PK_DOWNLOAD_INFO <>", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoGreaterThan(String value) {
            addCriterion("PK_DOWNLOAD_INFO >", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoGreaterThanOrEqualTo(String value) {
            addCriterion("PK_DOWNLOAD_INFO >=", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoLessThan(String value) {
            addCriterion("PK_DOWNLOAD_INFO <", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoLessThanOrEqualTo(String value) {
            addCriterion("PK_DOWNLOAD_INFO <=", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoLike(String value) {
            addCriterion("PK_DOWNLOAD_INFO like", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoNotLike(String value) {
            addCriterion("PK_DOWNLOAD_INFO not like", value, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoIn(List<String> values) {
            addCriterion("PK_DOWNLOAD_INFO in", values, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoNotIn(List<String> values) {
            addCriterion("PK_DOWNLOAD_INFO not in", values, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoBetween(String value1, String value2) {
            addCriterion("PK_DOWNLOAD_INFO between", value1, value2, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andPkDownloadInfoNotBetween(String value1, String value2) {
            addCriterion("PK_DOWNLOAD_INFO not between", value1, value2, "pkDownloadInfo");
            return (Criteria) this;
        }

        public Criteria andDef1IsNull() {
            addCriterion("DEF1 is null");
            return (Criteria) this;
        }

        public Criteria andDef1IsNotNull() {
            addCriterion("DEF1 is not null");
            return (Criteria) this;
        }

        public Criteria andDef1EqualTo(String value) {
            addCriterion("DEF1 =", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1NotEqualTo(String value) {
            addCriterion("DEF1 <>", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1GreaterThan(String value) {
            addCriterion("DEF1 >", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1GreaterThanOrEqualTo(String value) {
            addCriterion("DEF1 >=", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1LessThan(String value) {
            addCriterion("DEF1 <", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1LessThanOrEqualTo(String value) {
            addCriterion("DEF1 <=", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1Like(String value) {
            addCriterion("DEF1 like", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1NotLike(String value) {
            addCriterion("DEF1 not like", value, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1In(List<String> values) {
            addCriterion("DEF1 in", values, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1NotIn(List<String> values) {
            addCriterion("DEF1 not in", values, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1Between(String value1, String value2) {
            addCriterion("DEF1 between", value1, value2, "def1");
            return (Criteria) this;
        }

        public Criteria andDef1NotBetween(String value1, String value2) {
            addCriterion("DEF1 not between", value1, value2, "def1");
            return (Criteria) this;
        }

        public Criteria andDef2IsNull() {
            addCriterion("DEF2 is null");
            return (Criteria) this;
        }

        public Criteria andDef2IsNotNull() {
            addCriterion("DEF2 is not null");
            return (Criteria) this;
        }

        public Criteria andDef2EqualTo(String value) {
            addCriterion("DEF2 =", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2NotEqualTo(String value) {
            addCriterion("DEF2 <>", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2GreaterThan(String value) {
            addCriterion("DEF2 >", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2GreaterThanOrEqualTo(String value) {
            addCriterion("DEF2 >=", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2LessThan(String value) {
            addCriterion("DEF2 <", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2LessThanOrEqualTo(String value) {
            addCriterion("DEF2 <=", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2Like(String value) {
            addCriterion("DEF2 like", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2NotLike(String value) {
            addCriterion("DEF2 not like", value, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2In(List<String> values) {
            addCriterion("DEF2 in", values, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2NotIn(List<String> values) {
            addCriterion("DEF2 not in", values, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2Between(String value1, String value2) {
            addCriterion("DEF2 between", value1, value2, "def2");
            return (Criteria) this;
        }

        public Criteria andDef2NotBetween(String value1, String value2) {
            addCriterion("DEF2 not between", value1, value2, "def2");
            return (Criteria) this;
        }

        public Criteria andDef3IsNull() {
            addCriterion("DEF3 is null");
            return (Criteria) this;
        }

        public Criteria andDef3IsNotNull() {
            addCriterion("DEF3 is not null");
            return (Criteria) this;
        }

        public Criteria andDef3EqualTo(String value) {
            addCriterion("DEF3 =", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3NotEqualTo(String value) {
            addCriterion("DEF3 <>", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3GreaterThan(String value) {
            addCriterion("DEF3 >", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3GreaterThanOrEqualTo(String value) {
            addCriterion("DEF3 >=", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3LessThan(String value) {
            addCriterion("DEF3 <", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3LessThanOrEqualTo(String value) {
            addCriterion("DEF3 <=", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3Like(String value) {
            addCriterion("DEF3 like", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3NotLike(String value) {
            addCriterion("DEF3 not like", value, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3In(List<String> values) {
            addCriterion("DEF3 in", values, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3NotIn(List<String> values) {
            addCriterion("DEF3 not in", values, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3Between(String value1, String value2) {
            addCriterion("DEF3 between", value1, value2, "def3");
            return (Criteria) this;
        }

        public Criteria andDef3NotBetween(String value1, String value2) {
            addCriterion("DEF3 not between", value1, value2, "def3");
            return (Criteria) this;
        }

        public Criteria andDef4IsNull() {
            addCriterion("DEF4 is null");
            return (Criteria) this;
        }

        public Criteria andDef4IsNotNull() {
            addCriterion("DEF4 is not null");
            return (Criteria) this;
        }

        public Criteria andDef4EqualTo(String value) {
            addCriterion("DEF4 =", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4NotEqualTo(String value) {
            addCriterion("DEF4 <>", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4GreaterThan(String value) {
            addCriterion("DEF4 >", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4GreaterThanOrEqualTo(String value) {
            addCriterion("DEF4 >=", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4LessThan(String value) {
            addCriterion("DEF4 <", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4LessThanOrEqualTo(String value) {
            addCriterion("DEF4 <=", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4Like(String value) {
            addCriterion("DEF4 like", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4NotLike(String value) {
            addCriterion("DEF4 not like", value, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4In(List<String> values) {
            addCriterion("DEF4 in", values, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4NotIn(List<String> values) {
            addCriterion("DEF4 not in", values, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4Between(String value1, String value2) {
            addCriterion("DEF4 between", value1, value2, "def4");
            return (Criteria) this;
        }

        public Criteria andDef4NotBetween(String value1, String value2) {
            addCriterion("DEF4 not between", value1, value2, "def4");
            return (Criteria) this;
        }

        public Criteria andDef5IsNull() {
            addCriterion("DEF5 is null");
            return (Criteria) this;
        }

        public Criteria andDef5IsNotNull() {
            addCriterion("DEF5 is not null");
            return (Criteria) this;
        }

        public Criteria andDef5EqualTo(String value) {
            addCriterion("DEF5 =", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5NotEqualTo(String value) {
            addCriterion("DEF5 <>", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5GreaterThan(String value) {
            addCriterion("DEF5 >", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5GreaterThanOrEqualTo(String value) {
            addCriterion("DEF5 >=", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5LessThan(String value) {
            addCriterion("DEF5 <", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5LessThanOrEqualTo(String value) {
            addCriterion("DEF5 <=", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5Like(String value) {
            addCriterion("DEF5 like", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5NotLike(String value) {
            addCriterion("DEF5 not like", value, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5In(List<String> values) {
            addCriterion("DEF5 in", values, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5NotIn(List<String> values) {
            addCriterion("DEF5 not in", values, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5Between(String value1, String value2) {
            addCriterion("DEF5 between", value1, value2, "def5");
            return (Criteria) this;
        }

        public Criteria andDef5NotBetween(String value1, String value2) {
            addCriterion("DEF5 not between", value1, value2, "def5");
            return (Criteria) this;
        }

        public Criteria andDef6IsNull() {
            addCriterion("DEF6 is null");
            return (Criteria) this;
        }

        public Criteria andDef6IsNotNull() {
            addCriterion("DEF6 is not null");
            return (Criteria) this;
        }

        public Criteria andDef6EqualTo(String value) {
            addCriterion("DEF6 =", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6NotEqualTo(String value) {
            addCriterion("DEF6 <>", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6GreaterThan(String value) {
            addCriterion("DEF6 >", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6GreaterThanOrEqualTo(String value) {
            addCriterion("DEF6 >=", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6LessThan(String value) {
            addCriterion("DEF6 <", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6LessThanOrEqualTo(String value) {
            addCriterion("DEF6 <=", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6Like(String value) {
            addCriterion("DEF6 like", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6NotLike(String value) {
            addCriterion("DEF6 not like", value, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6In(List<String> values) {
            addCriterion("DEF6 in", values, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6NotIn(List<String> values) {
            addCriterion("DEF6 not in", values, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6Between(String value1, String value2) {
            addCriterion("DEF6 between", value1, value2, "def6");
            return (Criteria) this;
        }

        public Criteria andDef6NotBetween(String value1, String value2) {
            addCriterion("DEF6 not between", value1, value2, "def6");
            return (Criteria) this;
        }

        public Criteria andDef7IsNull() {
            addCriterion("DEF7 is null");
            return (Criteria) this;
        }

        public Criteria andDef7IsNotNull() {
            addCriterion("DEF7 is not null");
            return (Criteria) this;
        }

        public Criteria andDef7EqualTo(String value) {
            addCriterion("DEF7 =", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7NotEqualTo(String value) {
            addCriterion("DEF7 <>", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7GreaterThan(String value) {
            addCriterion("DEF7 >", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7GreaterThanOrEqualTo(String value) {
            addCriterion("DEF7 >=", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7LessThan(String value) {
            addCriterion("DEF7 <", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7LessThanOrEqualTo(String value) {
            addCriterion("DEF7 <=", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7Like(String value) {
            addCriterion("DEF7 like", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7NotLike(String value) {
            addCriterion("DEF7 not like", value, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7In(List<String> values) {
            addCriterion("DEF7 in", values, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7NotIn(List<String> values) {
            addCriterion("DEF7 not in", values, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7Between(String value1, String value2) {
            addCriterion("DEF7 between", value1, value2, "def7");
            return (Criteria) this;
        }

        public Criteria andDef7NotBetween(String value1, String value2) {
            addCriterion("DEF7 not between", value1, value2, "def7");
            return (Criteria) this;
        }

        public Criteria andDef8IsNull() {
            addCriterion("DEF8 is null");
            return (Criteria) this;
        }

        public Criteria andDef8IsNotNull() {
            addCriterion("DEF8 is not null");
            return (Criteria) this;
        }

        public Criteria andDef8EqualTo(String value) {
            addCriterion("DEF8 =", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8NotEqualTo(String value) {
            addCriterion("DEF8 <>", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8GreaterThan(String value) {
            addCriterion("DEF8 >", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8GreaterThanOrEqualTo(String value) {
            addCriterion("DEF8 >=", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8LessThan(String value) {
            addCriterion("DEF8 <", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8LessThanOrEqualTo(String value) {
            addCriterion("DEF8 <=", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8Like(String value) {
            addCriterion("DEF8 like", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8NotLike(String value) {
            addCriterion("DEF8 not like", value, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8In(List<String> values) {
            addCriterion("DEF8 in", values, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8NotIn(List<String> values) {
            addCriterion("DEF8 not in", values, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8Between(String value1, String value2) {
            addCriterion("DEF8 between", value1, value2, "def8");
            return (Criteria) this;
        }

        public Criteria andDef8NotBetween(String value1, String value2) {
            addCriterion("DEF8 not between", value1, value2, "def8");
            return (Criteria) this;
        }

        public Criteria andDef9IsNull() {
            addCriterion("DEF9 is null");
            return (Criteria) this;
        }

        public Criteria andDef9IsNotNull() {
            addCriterion("DEF9 is not null");
            return (Criteria) this;
        }

        public Criteria andDef9EqualTo(String value) {
            addCriterion("DEF9 =", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9NotEqualTo(String value) {
            addCriterion("DEF9 <>", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9GreaterThan(String value) {
            addCriterion("DEF9 >", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9GreaterThanOrEqualTo(String value) {
            addCriterion("DEF9 >=", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9LessThan(String value) {
            addCriterion("DEF9 <", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9LessThanOrEqualTo(String value) {
            addCriterion("DEF9 <=", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9Like(String value) {
            addCriterion("DEF9 like", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9NotLike(String value) {
            addCriterion("DEF9 not like", value, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9In(List<String> values) {
            addCriterion("DEF9 in", values, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9NotIn(List<String> values) {
            addCriterion("DEF9 not in", values, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9Between(String value1, String value2) {
            addCriterion("DEF9 between", value1, value2, "def9");
            return (Criteria) this;
        }

        public Criteria andDef9NotBetween(String value1, String value2) {
            addCriterion("DEF9 not between", value1, value2, "def9");
            return (Criteria) this;
        }

        public Criteria andDef10IsNull() {
            addCriterion("DEF10 is null");
            return (Criteria) this;
        }

        public Criteria andDef10IsNotNull() {
            addCriterion("DEF10 is not null");
            return (Criteria) this;
        }

        public Criteria andDef10EqualTo(String value) {
            addCriterion("DEF10 =", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10NotEqualTo(String value) {
            addCriterion("DEF10 <>", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10GreaterThan(String value) {
            addCriterion("DEF10 >", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10GreaterThanOrEqualTo(String value) {
            addCriterion("DEF10 >=", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10LessThan(String value) {
            addCriterion("DEF10 <", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10LessThanOrEqualTo(String value) {
            addCriterion("DEF10 <=", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10Like(String value) {
            addCriterion("DEF10 like", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10NotLike(String value) {
            addCriterion("DEF10 not like", value, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10In(List<String> values) {
            addCriterion("DEF10 in", values, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10NotIn(List<String> values) {
            addCriterion("DEF10 not in", values, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10Between(String value1, String value2) {
            addCriterion("DEF10 between", value1, value2, "def10");
            return (Criteria) this;
        }

        public Criteria andDef10NotBetween(String value1, String value2) {
            addCriterion("DEF10 not between", value1, value2, "def10");
            return (Criteria) this;
        }

        public Criteria andBillnoIsNull() {
            addCriterion("BILLNO is null");
            return (Criteria) this;
        }

        public Criteria andBillnoIsNotNull() {
            addCriterion("BILLNO is not null");
            return (Criteria) this;
        }

        public Criteria andBillnoEqualTo(String value) {
            addCriterion("BILLNO =", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoNotEqualTo(String value) {
            addCriterion("BILLNO <>", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoGreaterThan(String value) {
            addCriterion("BILLNO >", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoGreaterThanOrEqualTo(String value) {
            addCriterion("BILLNO >=", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoLessThan(String value) {
            addCriterion("BILLNO <", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoLessThanOrEqualTo(String value) {
            addCriterion("BILLNO <=", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoLike(String value) {
            addCriterion("BILLNO like", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoNotLike(String value) {
            addCriterion("BILLNO not like", value, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoIn(List<String> values) {
            addCriterion("BILLNO in", values, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoNotIn(List<String> values) {
            addCriterion("BILLNO not in", values, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoBetween(String value1, String value2) {
            addCriterion("BILLNO between", value1, value2, "billno");
            return (Criteria) this;
        }

        public Criteria andBillnoNotBetween(String value1, String value2) {
            addCriterion("BILLNO not between", value1, value2, "billno");
            return (Criteria) this;
        }

        public Criteria andTsIsNull() {
            addCriterion("TS is null");
            return (Criteria) this;
        }

        public Criteria andTsIsNotNull() {
            addCriterion("TS is not null");
            return (Criteria) this;
        }

        public Criteria andTsEqualTo(Date value) {
            addCriterion("TS =", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsNotEqualTo(Date value) {
            addCriterion("TS <>", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsGreaterThan(Date value) {
            addCriterion("TS >", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsGreaterThanOrEqualTo(Date value) {
            addCriterion("TS >=", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsLessThan(Date value) {
            addCriterion("TS <", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsLessThanOrEqualTo(Date value) {
            addCriterion("TS <=", value, "ts");
            return (Criteria) this;
        }

        public Criteria andTsIn(List<Date> values) {
            addCriterion("TS in", values, "ts");
            return (Criteria) this;
        }

        public Criteria andTsNotIn(List<Date> values) {
            addCriterion("TS not in", values, "ts");
            return (Criteria) this;
        }

        public Criteria andTsBetween(Date value1, Date value2) {
            addCriterion("TS between", value1, value2, "ts");
            return (Criteria) this;
        }

        public Criteria andTsNotBetween(Date value1, Date value2) {
            addCriterion("TS not between", value1, value2, "ts");
            return (Criteria) this;
        }

        public Criteria andQualityScoreIsNull() {
            addCriterion("QUALITY_SCORE is null");
            return (Criteria) this;
        }

        public Criteria andQualityScoreIsNotNull() {
            addCriterion("QUALITY_SCORE is not null");
            return (Criteria) this;
        }

        public Criteria andQualityScoreEqualTo(String value) {
            addCriterion("QUALITY_SCORE =", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreNotEqualTo(String value) {
            addCriterion("QUALITY_SCORE <>", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreGreaterThan(String value) {
            addCriterion("QUALITY_SCORE >", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreGreaterThanOrEqualTo(String value) {
            addCriterion("QUALITY_SCORE >=", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreLessThan(String value) {
            addCriterion("QUALITY_SCORE <", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreLessThanOrEqualTo(String value) {
            addCriterion("QUALITY_SCORE <=", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreLike(String value) {
            addCriterion("QUALITY_SCORE like", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreNotLike(String value) {
            addCriterion("QUALITY_SCORE not like", value, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreIn(List<String> values) {
            addCriterion("QUALITY_SCORE in", values, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreNotIn(List<String> values) {
            addCriterion("QUALITY_SCORE not in", values, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreBetween(String value1, String value2) {
            addCriterion("QUALITY_SCORE between", value1, value2, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityScoreNotBetween(String value1, String value2) {
            addCriterion("QUALITY_SCORE not between", value1, value2, "qualityScore");
            return (Criteria) this;
        }

        public Criteria andQualityReasonIsNull() {
            addCriterion("QUALITY_REASON is null");
            return (Criteria) this;
        }

        public Criteria andQualityReasonIsNotNull() {
            addCriterion("QUALITY_REASON is not null");
            return (Criteria) this;
        }

        public Criteria andQualityReasonEqualTo(String value) {
            addCriterion("QUALITY_REASON =", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonNotEqualTo(String value) {
            addCriterion("QUALITY_REASON <>", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonGreaterThan(String value) {
            addCriterion("QUALITY_REASON >", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonGreaterThanOrEqualTo(String value) {
            addCriterion("QUALITY_REASON >=", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonLessThan(String value) {
            addCriterion("QUALITY_REASON <", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonLessThanOrEqualTo(String value) {
            addCriterion("QUALITY_REASON <=", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonLike(String value) {
            addCriterion("QUALITY_REASON like", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonNotLike(String value) {
            addCriterion("QUALITY_REASON not like", value, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonIn(List<String> values) {
            addCriterion("QUALITY_REASON in", values, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonNotIn(List<String> values) {
            addCriterion("QUALITY_REASON not in", values, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonBetween(String value1, String value2) {
            addCriterion("QUALITY_REASON between", value1, value2, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andQualityReasonNotBetween(String value1, String value2) {
            addCriterion("QUALITY_REASON not between", value1, value2, "qualityReason");
            return (Criteria) this;
        }

        public Criteria andAgingScoreIsNull() {
            addCriterion("AGING_SCORE is null");
            return (Criteria) this;
        }

        public Criteria andAgingScoreIsNotNull() {
            addCriterion("AGING_SCORE is not null");
            return (Criteria) this;
        }

        public Criteria andAgingScoreEqualTo(String value) {
            addCriterion("AGING_SCORE =", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreNotEqualTo(String value) {
            addCriterion("AGING_SCORE <>", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreGreaterThan(String value) {
            addCriterion("AGING_SCORE >", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreGreaterThanOrEqualTo(String value) {
            addCriterion("AGING_SCORE >=", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreLessThan(String value) {
            addCriterion("AGING_SCORE <", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreLessThanOrEqualTo(String value) {
            addCriterion("AGING_SCORE <=", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreLike(String value) {
            addCriterion("AGING_SCORE like", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreNotLike(String value) {
            addCriterion("AGING_SCORE not like", value, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreIn(List<String> values) {
            addCriterion("AGING_SCORE in", values, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreNotIn(List<String> values) {
            addCriterion("AGING_SCORE not in", values, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreBetween(String value1, String value2) {
            addCriterion("AGING_SCORE between", value1, value2, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingScoreNotBetween(String value1, String value2) {
            addCriterion("AGING_SCORE not between", value1, value2, "agingScore");
            return (Criteria) this;
        }

        public Criteria andAgingReasonIsNull() {
            addCriterion("AGING_REASON is null");
            return (Criteria) this;
        }

        public Criteria andAgingReasonIsNotNull() {
            addCriterion("AGING_REASON is not null");
            return (Criteria) this;
        }

        public Criteria andAgingReasonEqualTo(String value) {
            addCriterion("AGING_REASON =", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonNotEqualTo(String value) {
            addCriterion("AGING_REASON <>", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonGreaterThan(String value) {
            addCriterion("AGING_REASON >", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonGreaterThanOrEqualTo(String value) {
            addCriterion("AGING_REASON >=", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonLessThan(String value) {
            addCriterion("AGING_REASON <", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonLessThanOrEqualTo(String value) {
            addCriterion("AGING_REASON <=", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonLike(String value) {
            addCriterion("AGING_REASON like", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonNotLike(String value) {
            addCriterion("AGING_REASON not like", value, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonIn(List<String> values) {
            addCriterion("AGING_REASON in", values, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonNotIn(List<String> values) {
            addCriterion("AGING_REASON not in", values, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonBetween(String value1, String value2) {
            addCriterion("AGING_REASON between", value1, value2, "agingReason");
            return (Criteria) this;
        }

        public Criteria andAgingReasonNotBetween(String value1, String value2) {
            addCriterion("AGING_REASON not between", value1, value2, "agingReason");
            return (Criteria) this;
        }

        public Criteria andDownloadCountIsNull() {
            addCriterion("DOWNLOAD_COUNT is null");
            return (Criteria) this;
        }

        public Criteria andDownloadCountIsNotNull() {
            addCriterion("DOWNLOAD_COUNT is not null");
            return (Criteria) this;
        }

        public Criteria andDownloadCountEqualTo(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT =", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountNotEqualTo(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT <>", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountGreaterThan(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT >", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT >=", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountLessThan(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT <", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("DOWNLOAD_COUNT <=", value, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountIn(List<BigDecimal> values) {
            addCriterion("DOWNLOAD_COUNT in", values, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountNotIn(List<BigDecimal> values) {
            addCriterion("DOWNLOAD_COUNT not in", values, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DOWNLOAD_COUNT between", value1, value2, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadCountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("DOWNLOAD_COUNT not between", value1, value2, "downloadCount");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionIsNull() {
            addCriterion("DOWNLOAD_VERSION is null");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionIsNotNull() {
            addCriterion("DOWNLOAD_VERSION is not null");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionEqualTo(String value) {
            addCriterion("DOWNLOAD_VERSION =", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionNotEqualTo(String value) {
            addCriterion("DOWNLOAD_VERSION <>", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionGreaterThan(String value) {
            addCriterion("DOWNLOAD_VERSION >", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionGreaterThanOrEqualTo(String value) {
            addCriterion("DOWNLOAD_VERSION >=", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionLessThan(String value) {
            addCriterion("DOWNLOAD_VERSION <", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionLessThanOrEqualTo(String value) {
            addCriterion("DOWNLOAD_VERSION <=", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionLike(String value) {
            addCriterion("DOWNLOAD_VERSION like", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionNotLike(String value) {
            addCriterion("DOWNLOAD_VERSION not like", value, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionIn(List<String> values) {
            addCriterion("DOWNLOAD_VERSION in", values, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionNotIn(List<String> values) {
            addCriterion("DOWNLOAD_VERSION not in", values, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionBetween(String value1, String value2) {
            addCriterion("DOWNLOAD_VERSION between", value1, value2, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andDownloadVersionNotBetween(String value1, String value2) {
            addCriterion("DOWNLOAD_VERSION not between", value1, value2, "downloadVersion");
            return (Criteria) this;
        }

        public Criteria andOpratorIsNull() {
            addCriterion("OPRATOR is null");
            return (Criteria) this;
        }

        public Criteria andOpratorIsNotNull() {
            addCriterion("OPRATOR is not null");
            return (Criteria) this;
        }

        public Criteria andOpratorEqualTo(String value) {
            addCriterion("OPRATOR =", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorNotEqualTo(String value) {
            addCriterion("OPRATOR <>", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorGreaterThan(String value) {
            addCriterion("OPRATOR >", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorGreaterThanOrEqualTo(String value) {
            addCriterion("OPRATOR >=", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorLessThan(String value) {
            addCriterion("OPRATOR <", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorLessThanOrEqualTo(String value) {
            addCriterion("OPRATOR <=", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorLike(String value) {
            addCriterion("OPRATOR like", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorNotLike(String value) {
            addCriterion("OPRATOR not like", value, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorIn(List<String> values) {
            addCriterion("OPRATOR in", values, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorNotIn(List<String> values) {
            addCriterion("OPRATOR not in", values, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorBetween(String value1, String value2) {
            addCriterion("OPRATOR between", value1, value2, "oprator");
            return (Criteria) this;
        }

        public Criteria andOpratorNotBetween(String value1, String value2) {
            addCriterion("OPRATOR not between", value1, value2, "oprator");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}